CVPR 2018 | 无监督且多态的图片样式转换技术,康奈尔大学与英伟达新作MUNIT及其源码
http://nooverfit.com/wp/cvpr2018精选1-无监督且多态的图片样式转换技术,康奈/
论文地址:https://arxiv.org/pdf/1804.04732.pdf
最近图片生成领域正刮着一股“无监督”之风,今天讲讲Cornell大学与英伟达的新作,正是使无监督可以生成“多态”图片的技术,论文名:Multimodal Unsupervised Image-to-Image Translation (MUNIT)。
这股“无监督”之风的刮起,只是因为我们发现用GAN结合一些人为约束和先验逻辑,训练时无需监督图片配对,直接在domain1和domain2中随机抽一些图片训练,即可得到样式转换模型。
这些约束和先验有许多做法,可以迫使样式转换模型(从domain1到domain2)保留domain1的一些语义特征;也可以像CycleGAN的循环一致约束,如果一张图片x从domain1转换到domain2变为y,那么把y再从domain2转换回domain1变为x2时,x应该和x2非常相似和一致:
来自CycleGAN:https://arxiv.org/pdf/1703.10593.pdf
而这些无监督方法有一个缺陷:不能生成多样(多态)的图片。MUNIT正是为了解决这一问题提出的,因为目前类似BicycleGAN(https://arxiv.org/abs/1711.11586)的多态图片生成方法都需要配对监督学习。
MUNIT为此做了一些约束和假设,如,假设图片有两部分信息:内容c和样式s,另外,图片样式转换时domain1和domain2是共享内容c的信息空间的:
MUNIT的自编码器
生成图片时,把同一个内容c和不同样式s组合并编码输出,就可生成多态的图片:
来自:https://arxiv.org/pdf/1804.04732.pdf
实际训练时,我们需要两个自编码器,分别对应domain1和domain2:
来自:https://arxiv.org/pdf/1804.04732.pdf
两个自编码器都要先在各自的domain中训练,过程中需要保证同一张图片x1可以被还原出相似的域中图片x1^,即所谓的让x1的domain内部重构的loss降到最小:
其中E1是x1的编码器(分别编码成内容信息c和样式信息s),G1是解码器(根据c和s)解码成domain1中图片。
生成样式转换图片时,把另一个domain中的内容信息c2拿过来与当前domain的样式信息s1拼接,再解码生成新的图片,就可以从domain2生成domain1样式的图片x2->1,下图即交叉domain的转换方法:
来自:https://arxiv.org/pdf/1804.04732.pdf
这时对于转换后的图片x2->1, 需要构建所谓的隐含特征重构loss(latent reconstruction loss),即,用编码器再对图片x2->1编码后,依然可以得到内容信息c2与样式信息s1(显然这时符合直觉的):
即,内容c和样式s的编码器对于生成后的图片也是适用的。
最后一个需要关注的loss是对抗loss,即,通过上述交叉domain生成的图片必须与内部本身domain生成的图片无法区分:
所以综合上面的3个loss考虑,我们需要的总的loss如下:
这些loss在MUNIT的tensorflow源码中也有对应(代码位置:https://github.com/taki0112/MUNIT-Tensorflow/blob/...):
其中self.recon_x_w等以_w结尾是各自的权重。
MUNIT的自编码器的实际实现架构如下:
其中的内容编码器(content encoder)和样式编码器(style encoder)没什么好讲的。有意思的是解码器中要很好地整合c编码器和s编码器(内容和样式的完美合成),使用了自适应样例规范化Adaptive Instance Normalization (AdaIN) 技术,同时用一个MLP网络生成参数,辅助Residential Blocks生成高质量图片:
来自:https://arxiv.org/pdf/1804.04732.pdf
其中z代表前面的层输出的内容信息特征,u 和 σ 是对z的一些通道平均值和方差计算,γ 和 β 就是MLP从样式信息s生成的参数,用来调整图片生成(让图片内容更适应图片样式)。
对应代码在https://github.com/taki0112/MUNIT-Tensorflow/blob/... :
看一下MUNIT与其他模型比较(清晰度和多样性):
上表是从草图生成实际的鞋子和手袋的图片生成任务,可见MUNIT算是在无监督和多态之间找到了较好的平衡点。
最后看看MUNIT的图片生成样例:
参考文献:
1、Multimodal Unsupervised Image-to-Image Translation
2、https://github.com/taki0112/MUNIT-Tensorflow
3、https://github.com/NVlabs/MUNIT
*推荐文章*
CVPR2018:基于时空模型无监督迁移学习的行人重识别
CVPR 2018 | Spotlight论文:变分U-Net,可按条件独立变换目标的外观和形状
PS.极市平台正式启动了极市原创作者计划。欢迎各位的高质量的视觉方向的原创投稿文章,我们将不遗余力得在我们所有的平台上进行传播分享。更多详情请点击:活动 | 加入极市原创作者行列,实现一个小目标